You could just pre-compute these data matrix and pass it to the Dataset.
In the __getitem__ method you would get a single sample and transform it if necessary.
Here is a small example:
class MyDataset(Dataset):
    def __init__(self, embeddings, transform=None):
        self.data = embeddings
        self.transform = transform
        
    def __getitem__(self, index):
        x = self.data[index]
        if self.transform is not None:
            x = self.transform(x)
        return x
    
    def __len__(self):
        return len(self.data)


nb_samples = 100
docs_embedded_with_tfid = torch.randn(nb_samples, 300)
dataset = MyDataset(docs_embedded_with_tfid)
loader = DataLoader(
    dataset,
    batch_size=10,
    shuffle=True,
    pin_memory=torch.cuda.is_available(),
    num_workers=2
)

for batch_idx, data in enumerate(loader):
    print('Batch idx {}, data shape {}'.format(
        batch_idx, data.shape))