You can preload images in a separate thread if you need to.
If you need to preload lots of different stuff, ex. images, sound, pre create objects, pre render stuff, etc, what I normally have done, is making a load scene, and then preloading assets in update:
It requires you to have a switch statement with ex. 10 cases, each preloading a chunk. This makes it easy to update the load indicator with the switch progress.
// preload some images
// preload some sound
// loading complete