After trying everything Bob suggested and several not listed, the bug just kept coming back. This one actually works as the theory behind this is that the code it is related to hyperthread
Just locate the file called AppOption.TXT see picture.
Open Task Manager then tab Performance and see how many physical CPU's you got.
Change the value on the the two following command's from -1 to match your processors. (6 in my case)
MaxJobThreads -1
MaxGameCoreThreads -1
Change the following commands from -1 to a number LESS than your core number (I went with 2, 3 and 1.
GameCoreReserveThreads -1
MaxGameCoreUnitMovementThreads -1
MaxGameCoreTradeRouteThreads -1
Save the AppOption.TXT file, start a new game and problem solved. Not my explanation, but I tried it and it actually have been working ever since.
Perhaps someone else can explain why this do solved the problem and what the
'correct: number of threads to use are.