How to Unlock System 2 Thinking in Large Language Models?