There are a few options here, though some of them are only available in 5.6 and 5.7.
In 5.4 there are several functions IRendererModule::RequestVirtualTextureTiles() that can be used to trigger preload of virtual texture pages. You can find a couple of usages of this in the code. One that might be interesting is in MakeHLODRenderResourcesResident(). That function tries to warm up virtual texture and nanite data used by HLODs before showing them.
In 5.6 for RVT there is URuntimeVirtualTextureComponent::RequestPreload() that can be used to trigger preload of runtime virtual texture pages in a given world bounds.
In 5.6 it is also possible to expose specific virtual textures assets to the regular texture streaming system using the “Virtual Texture Prefetch Mips” setting on the texture. With this we stream the selected mip count according to the regular texture streaming rules (based on screen size of associated rendered meshes). Functions like PrestreamTexture() will also apply. Care needs to be taken because if this setting is applied to too many textures, then you are likely to oversubscribe the virtual texture streaming pools.
For cinematic sequences we also have the Cinematic Prestreaming plugin. Up to 5.7 this was still experimental. But very recently a number of improvements have been made in the UE5 Main branch so that it will potentially be moved to Beta in 5.8. This system allows you to record the virtual texture (and nanite) page requests for early playback at runtime. This then prestreams the virtual textures before camera cuts etc.