I totally agree with you and also think that multiple processes by themselves are useful, should be used for the data loading and process, and would yield a speedup in the overall training pipeline.
This can be easily achieved with the num_workers argument of the DataLoader.
My comment might not have been clear enough, but I was wondering about the use case to use the multiprocessing package manually in the training script as well as multiple workers (which will again spawn multiple processes, so you would end up with a “nested” multiprocessing workload), as I would imagine that using the simpler approach of setting num_workers>=1 should already do the job.