Unexpected double output in setup() - Why???

Babbsack:
I usually open the Serial monitor window before uploading the sketch and I use an Arduino Nano with CH340G chipset (China clone).

Try this:

int main (void)
{
    init(); // performs timer and interrupt setup
    Serial.begin (9600); // setup serial port
    while (!Serial); // probably don't need this
    Serial.println ("Serial Monitor initialized..."); // print message
    while (1); // forever loop (main has nowhere to "exit" to).
}