I have once done something similar. You should give a try to OpenCV's checkerboard detection. There are also works on Sudoku square detectionSudoku square detection, which might give you a hint.
If these don't work for you, then I would suggest the following: Forget about detection the checkerboard. Initially, assume that every piece is in place and take the snapshot of the board (you can even manually place an initial board, doesn't matter). Then, whenever a piece is moved, grab a new image and apply a differencing of two images (this is somewhat like a background subtraction). Note that this way, you easily get the location of the moved piece. And since you know the piece and what was in the previous location beforehand, you get the complete information of the move.
Use a downward looking camera, just like you showed.