I think you can use triggers to load a lot of stuff before the map starts. Use the trigger "Map initialization" anything in there will load at the loading screen before the game starts.
Pre-place one of each hero on your map in world editor. Then, on map initialization, remove them. Takes longer to load the map at first, but it won't lag in-game on hero selections.