I would recommend the second approach, as it would make sure to create the complete batch using multiprocessing and transferring the batch to the device.
The first approach might work, but you could easily run into multiprocessing errors, if each worker tries to create a new CUDA context.