LCD does not work unless Arduino is reset.

I just did that a bunch of times in a row. The one way I saw a problem was if it was powered up, I removed power briefly from the Arduino and then quickly plugged it back in--power off for just a second. Don (floresta) probably can say more precisely what is likely going on in that specific situation. If the power is off for 3 seconds or more it always seems to work fine.