First, a side note: you seem to need the speed, not the velocity. And since it's constant, you don't need the average speed, since that's the same as the speed.
Second, an advice: per your question and responses to comments, it really seems that you should be re-factoring the code of your game. There is almost always a way back from a messy setting, and not being able to due what you want simply in the Awake() or Start() parts of the game seems like the whole thing will give you future troubles nevertheless.
Third: besides the option of loading into your game a previously baked data, there is no such a thing like a calculation being really done before run-time. Run-time means time during which processor is running your game, and processor running is a necessity for you to make a calculation.
The problem, in your case, with loading a previously calculated data with information when the game scene Awakes(), is that you would have to be sure that you cover all and any screen resolution of all and any devices possible that could be running your game.
Fourth: one workaround that you could use is the following. Create an additional scene for your game (like an additional level) that will become the very first one. Then, you make the calculation in it normally, in the Start(). After the calculation, you just end such scene/level and call the next, which will be the real one you already have. Of course, keeping the result from the calculation from first scene/level to the second, as a global variable or class. That would take milliseconds, since the calculation you seem to need looks simple and inexpensive.