Setup vs __init__ vs prepare_data

I am confused what is the right place to load my dateset from disk.

I understand prepare_data is run only on one process so it makes sense to put things like download in there (since we need to do it just once).

What is the right place to initialize my dataset that would be passed to the dataloader?