At present, the bootloader kicks in first, as soon as the Arduino is powered up. Now my suggestion is that it doesn't, but don't remove it. Essentially, have a button, or command etc, that calls the bootloader to allow you to update the 'firmware' for the program.
Actually, this is known as the "Adafruit fast boot mod" and is already the behavior on Uno Arduinos.
They only enter the bootload on "reset", which is not the same as "poweron." (or so says the code.)
MEGA has a different bootloader and behaves differently.