The complexity of training depends heavily on your goals. If your goal is to improve startup time, it's actually pretty simple.
If your goal is peak performance across the board and you can't wait for runtime optimizations to kick in, you're going to have a harder time. But in many of the things I've worked on, startup time has been a bigger issue than JIT->peak.