For 1: Have a look at this post 4, which explains the memory usage depending on the implementation of the Dataset.
2: I don’t know how multiprocessing would work on top of the DataLoader, which itself uses multiprocessing for the workers.