like can I do it first thing in the reset vector? Do I need do anything at all first to guarantee it? Targeting MMC3 so
lda #07
sta 8000
lda bankvalue
sta 8001
For the most part, bankswitching is instantaneous as far as the software is concerned. You can do it as soon or as often as you like.
It's good practice to take care of a couple of things that could derail the program, like disabling IRQs and NMIs as as soon as possible, but in practice the difference is so little that it probably won't matter.