If you record a date then surely by definition the record is Finished. If there is no date the record is Not Finished. There is no need for the Finished checkbox at all.
Your requirement to prevent the conflict of the two fields is best solved by not including the Finished field at all. Then the operator can't enter an illegal combination. This is one the central principles of database normalization.
If the system needs to know if a record is Finished then it simply checks for the presence of a date. Date present means Finished. No date means Not Finished.
Is there some part of the problem I have misunderstood?