chaslie:

I am assuming that this is because its batching the data loader into 6 and running 6 data sets through the model at the same time, which means that i am multiprocessing the whole model and not just the dataloader by placing the “def train()” command inside the “if name == ‘main’:” section.


No, that should not be the case. The DataLoader will use multiple workers to load the data batches in the background, while a single model is still used for the training.
The DataLoader loop:
for data in loader:
    # train model

should just yield the next data faster, since you are now able to preload the next batches while the GPU is busy training the model.
If you are seeing an increase in GPU memory, I guess you are using CUDATensors in the Dataset?
Could this be the case? If so, then note that each worker would create a copy of the Dataset, which would increase the memory usage.