You could try to use pandas to read the csv file in chunks.
In your Dataset read the chunks in the __getitem__ method with pd.read_csv(..., skiprows=index*chunksize, chunksize=chunksize).
Note that you have to take care of the __len__ of the dataset, since the index should now be in [0, nb_samples/chunksize].